package com.lavegue.service;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.lavegue.common.Page;
import com.lavegue.common.Service;
import com.lavegue.dao.UserInfoDao;
import com.lavegue.model.UserInfo;

public interface UserInfoService extends Service<UserInfo, Integer, UserInfoDao>{
	
	/**
	 * 根据账户名查用户信息
	 * @param account
	 * @return
	 */
	public UserInfo findUserInfoByAccount(String account);
	
	/**
	 * 根据id找
	 * @param userid
	 * @return
	 */
	public UserInfo findUserInfoById(int userid);
	
	/**
	 * ljp 20120203 查询所有用户信息
	 */
	public List<UserInfo> findAllUserInfo();
	
	/**
	 * 更新用户信息
	 * @param user
	 */
	public void updateUserInfo(UserInfo user);
	
	/**
	 * ljp 20111220 DWR-获取生成的验证码，前台页面调用
	 */
	public String getSecurityCode();
	
	/**
	 * ljp 20111220 检测用户名号码注册重复
	 * 
	 */
	public String checkUserMobile(String mobileNo);
	
	/**
	 * ljp 20111221 用户注册
	 */
	public boolean userRegisterInfo(UserInfo user);
	
	/**ljp 20111222
	 * 在修改密码时，检测用户密码输入是否正确
	 * @userMobile  手机号码
	 * @userPwd 前台页面输入的旧密码
	 * @return
	 */
	public boolean checkUPwd(String userMobile, String userPwd);
	
	/**
	 * ljp 20111222 修改用户密码
	 * 
	 * @param UserInfo对象
	 */
	public boolean modifyUserPassword(UserInfo user);
	
	/**
	 * ljp 20111222 修改用户信息
	 * @return
	 */
	public boolean modifyUserInfo(UserInfo chagUser);
	
	/**
	 * ljp 20120106 根据条件查询用户信息
	 * 
	 * @param pageNo 当前页数
	 * @param pageSize 每页多少条
	 * @param beginTime 选择开始时间
	 * @param endTime 选择结束时间
	 * @param userName 姓名 
	 * @param account 账号
	 * @param cpNameId 公司名称ID
	 * @param balBegin 开始余额
	 * @param balEnd 结束余额
	 * @param userType 用户属性
	 * @param userProvince 省份
	 * @param userCity 城市
	 * @param userZone 区县
	 * @return 用户对象
	 * @throws Exception
	 */
	public Page<UserInfo> findUserInfoList(int pageNo, int pageSize, Date beginTime, Date endTime,
								String userName,String account,Integer cpNameId,BigDecimal balBegin,BigDecimal balEnd,
								Integer userType,String userProvince,String userCity,String userZone) throws Exception;
	
	/**
	 * ljp 20120109 查询所有用户信息
	 * 
	 * @param pageNo 当前页数
	 * @param pageSize 每页多少条
	 * @return 用户对象
	 * @throws Exception
	 */
	public Page<UserInfo> queryAllUserList(int pageNo, int pageSize);
	
}
